package com.fate.system.vo.approve;

import lombok.Data;
import lombok.Getter;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import jakarta.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;

import java.io.Serializable;

import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;

import org.hibernate.validator.constraints.Length;


/**
* @Author:      ten.x
* @TableName    gov_approve
* @Date:        2024-08-26 11:38:26
* @Version:     V1.0
*/
@Data
@Accessors(chain = true)
@TableName(value ="gov_approve")
@EqualsAndHashCode(callSuper = false)
public class ApproveListVO implements Serializable {

@TableField(exist = false)
private static final long serialVersionUID = 1L;

    /**
    * 主键：
    */
    @TableId(value = "id")
    @Schema(description = "")
    @Length(max= 100,message="编码长度不能超过100")
    private String id;
    /**
    * 申请内容
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "approve_content")
    @Schema(description = "申请内容")
    @Length(max= 255,message="编码长度不能超过255")
    private String approveContent;
    /**
    * 申请详情（请假理由）
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "approve_detail")
    @Schema(description = "申请详情（请假理由）")
    @Length(max= 255,message="编码长度不能超过255")
    private String approveDetail;
    /**
    * 批复内容
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "approval")
    @Schema(description = "批复内容")
    @Length(max= 255,message="编码长度不能超过255")
    private String approval;
    /**
    * 实例表id
    */
    @TableField(value = "instance_id")
    @Schema(description = "实例表id")
    private String instanceId;
    /**
    * 审批图片【数组】
    */
    @TableField(value = "picture")
    @Schema(description = "审批图片【数组】")
    private Object picture;
    /**
    * 附件
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "annex")
    @Schema(description = "附件")
    @Length(max= 255,message="编码长度不能超过255")
    private String annex;
    /**
    * 抄送人ids【数组】
    */
    @TableField(value = "cc_recipient_id")
    @Schema(description = "抄送人ids【数组】")
    private Object ccRecipientId;
    /**
    * 审批类型【1退款】
    */
    @TableField(value = "approve_type")
    @Schema(description = "审批类型【1退款】")
    private Integer approveType;
    /**
    * 请假开始时间
    */
    @TableField(value = "ask_leave_start_time")
    @Schema(description = "请假开始时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date askLeaveStartTime;
    /**
    * 请假结束时间
    */
    @TableField(value = "ask_leave_end_time")
    @Schema(description = "请假结束时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date askLeaveEndTime;
    /**
    * 申请人id
    */
    @TableField(value = "applicant_id")
    @Schema(description = "申请人id")
    private Integer applicantId;
    /**
    * 商家id
    */
    @TableField(value = "merchant_id")
    @Schema(description = "商家id")
    private Integer merchantId;
    /**
    * 已删除
    */
    @TableField(value = "deleted")
    @Schema(description = "已删除")
    private Boolean deleted;
    /**
    * 
    */
    @TableField(value = "create_time")
    @Schema(description = "")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
    * 
    */
    @TableField(value = "update_time")
    @Schema(description = "")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
    * 撤销申请【0否 1是】
    */
    @TableField(value = "withdraw")
    @Schema(description = "撤销申请【0否 1是】")
    private Boolean withdraw;
    /**
    * 撤销理由
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "withdraw_reason")
    @Schema(description = "撤销理由")
    @Length(max= 255,message="编码长度不能超过255")
    private String withdrawReason;
    /**
    * 审批人id
    */
    @TableField(value = "approver_id")
    @Schema(description = "审批人id")
    private String approverId;
    /**
    * 审批时间
    */
    @TableField(value = "approve_time")
    @Schema(description = "审批时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date approveTime;
}